package com.zhu.fastFoodRestaurantOrderSystem.service;

import com.zhu.fastFoodRestaurantOrderSystem.exception.BusinessException;
import com.zhu.fastFoodRestaurantOrderSystem.model.Item;
import com.zhu.fastFoodRestaurantOrderSystem.model.Order;

import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

public interface OrderService {

    /**
     * 判断订单中是否包含主食
     * @param items 商品列表
     */
    public void isContainMain(List<Item> items) throws BusinessException;


    /**
     * 判断订单中是否只包含甜品
     * @param items 商品列表
     */
    public void isDessertOnly(List<Item> items) throws BusinessException;


    /**
     * 单笔订单最多包含5个商品项
     * @param items 商品列表
     */
    public void checkItemCount(List<Item> items) throws BusinessException;

    /**
     * 创建订单
     * @param items 商品列表
     * @param isVip 是否为VIP
     * @return 订单
     */
    public Order createOrder(List<Item> items, boolean isVip);


    /**
     * 取消订单
     * @param orderId 订单ID
     */
    public void cancelOrder(String orderId);

    /**
     *  修改订单
     * @param orderId 订单ID
     * @param items 商品列表
     * @param isVip 是否VIP
     * @return
     */
    public Order modifyOrder(String orderId, List<Item> items, boolean isVip);

    /**
     * 审批订单
     * @param orderId 订单ID
     * @return  订单
     */
    public Order approveOrder(String orderId,boolean operate);


}
